Cloud computing can allow dynamically scalable virtualized resources to be provided as a service. Cloud computing can assure an appropriate level of resources are available to power software applications when and where the resources are needed in response to demand. As a result, cloud computing allows entities to respond quickly, efficiently and in an automated fashion to the rapidly changing business environment.
Real-time and virtualization by design are at odds with each other. Virtualization spreads computing resources across multiple virtual machines as a way to increase server utilization and flexibility. Real-time applications dedicate specific resources to reduce computing overhead and to ensure low latency. Currently, network virtualization platforms (“NVPs”) utilize fair scheduling and load balancing to maximize server utilization. Fair scheduling and load balancing functions do not support real-time application performance requirements well during capacity reduction and/or network overload events. Thus, both technical and business challenges exist for how to optimize tradeoffs between maximum virtualized server utilization and an acceptable level of real-time application transaction completion rate.